package main

import "fmt"

type Person struct {
	id   int
	name string
	age  int
}

func (p *Person) PrintInfo() {
	fmt.Println(*p)
}

func main() {
	var person = Person{1, "张三", 18}
	person.PrintInfo()

	// 方法值
	//funcPrintInfo := person.PrintInfo
	//fmt.Printf("%T\r\n",funcPrintInfo)
	//funcPrintInfo()

	// 方法表达式
	// 1.funcPrintInfo 要与 (p *Person) 接受类型保持一致,所以要用*Person
	// 2.funcPrintInfo 要显示把对象传过去
	funcPrintInfo := (*Person).PrintInfo
	funcPrintInfo(&person)
}
